package lol.clann.minecraft.springboot.api.model.core;

import lol.clann.minecraft.springboot.api.annotation.config.Configure;
import lombok.Getter;
import org.springframework.stereotype.Service;

import java.util.UUID;

/**
 *
 * @author pyz
 * @date 2019/6/22 4:01 PM
 */
@Getter
@Service
public class SBPConfig {

    @Configure(value = "springbootplugin.server.serverUUID", comment = "请勿修改")
    private String serverUUID = UUID.randomUUID().toString();
    @Configure(value = "springbootplugin.debug.config", comment = "当开启时,会在打印读取的配置文件内容和最后保存的配置文件内容")
    private boolean debugConfig = false;
    @Configure(value = "springbootplugin.debug.beanDependency", comment = "当开启时,会打印bean的加载顺序,用来检查非法依赖")
    private boolean debugBeanDependency = false;
    @Configure(value = "springbootplugin.debug.eventDetect", comment = "当开启时,会打印扫描Bukkit事件的日志")
    private boolean debugEventDetect = false;
    @Configure(value = "springbootplugin.debug.language", comment = "开启后,将打印注册语言文件的日志")
    private boolean debugLanguage = false;
    @Configure(value = "springbootplugin.debug.commandResolverRegister", comment = "开启后,将打印注册指令解析器的日志")
    private boolean debugCommandResolverRegister = false;
    @Configure(value = "springbootplugin.debug.eventTypeDetect", comment = "开启后,将打印bukkit事件扫描的日志")
    private boolean debugEventTypeDetect = false;
    @Configure(value = "springbootplugin.debug.commandHandlerDetect", comment = "开启后,将打印指令检测的日志")
    private boolean debugCommandHandlerDetect = false;

    @Configure(value = "springbootplugin.security.enableThreadSaveMode", comment = "启用后,异步调用会产生线程安全问题的API,都会通过抛异常的形式来终端")
    private boolean enableThreadSaveMode = false;
}
